package backing;

import java.util.ArrayList;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

import dao.AbstractDAO;
import dao.QuestaoDAO;

import to.Alternativas;
import to.Questao;
import util.JSFUtil;

@ManagedBean
@SessionScoped
public class AlternativaBacking {

	private List<Questao> listaQuestao;
	private Questao questaoSelecionada;

	Alternativas alt = new Alternativas();
	QuestaoDAO qDAO = new QuestaoDAO();
	AbstractDAO abDAO = new AbstractDAO();

	public AlternativaBacking() {

		criaListaQuestao();

	}

	public void salvar() {

		if (alt != null) {

			try {

				abDAO.saveOrUpdate(alt);
				JSFUtil.addInfoMessage("Alternativa salva com sucesso!");

			} catch (Exception e) {
				e.printStackTrace();
			}
		}
	}

	public void reset() {

		questaoSelecionada = null;
		alt = null;
		alt = new Alternativas();

	}

	public void limpaCampos() {

		alt = new Alternativas();
		alt.setQuestao(questaoSelecionada);
		alt.setTipo(null);
		alt.setDescricao(null);

	}

	public void selecionaQuestao(Questao questao) {

		this.questaoSelecionada = questao;
		alt.setQuestao(questao);

	}

	public void criaListaQuestao() {

		try {

			this.listaQuestao = new ArrayList<Questao>(qDAO.buscaTodasQuestao());

		} catch (Exception e) {
			e.printStackTrace();
		}

	}

	public Questao getQuestaoSelecionada() {
		return questaoSelecionada;
	}

	public void setQuestaoSelecionada(Questao questaoSelecionada) {
		this.questaoSelecionada = questaoSelecionada;
	}

	public Alternativas getAlt() {
		return alt;
	}

	public void setAlt(Alternativas alt) {
		this.alt = alt;
	}

	public List<Questao> getListaQuestao() {
		return listaQuestao;
	}

	public void setListaQuestao(List<Questao> listaQuestao) {
		this.listaQuestao = listaQuestao;
	}

}
